#pragma once
#include "BaseTask.h"
#include <string>
#include <cstdint>

// 前向声明
class TcpConnection;

/**
 * @brief 登录业务任务
 * 
 * 职责：
 * 1. 在业务线程池中执行登录验证逻辑
 * 2. 查询数据库验证用户名和密码（TODO: 集成数据库）
 * 3. 生成登录响应并通过线程安全的方式发送回客户端
 */
class LoginTask : public BaseTask
{
public:
    /**
     * @param conn TcpConnection 指针，用于发送响应
     * @param jsonBody 登录请求的 JSON 消息体
     */
    LoginTask(TcpConnection* conn, const std::string& jsonBody);
    
    ~LoginTask() override;
    
    /**
     * @brief 执行登录业务逻辑（在业务线程池中调用）
     * @param arg 预留参数，当前未使用
     */
    void work(void* arg) override;

private:
    TcpConnection* m_conn;      // TcpConnection 指针
    std::string m_jsonBody;     // 登录请求 JSON 数据
};

